package interceptor;

/**
 * @Author Jeremy Zheng
 * @Date 2021/4/9 9:29
 * @Version 1.0
 */
import org.apache.commons.lang.math.NumberUtils;

public class LogUtils {
    public static boolean checkStart(String log){
        //启动日志是json格式，没有前面的：timestamp|
        if (log == null){   //日志为空时，返回false
            return false;
        }
        if (!log.trim().startsWith("{") || !log.trim().endsWith("}")){  //包含start，是启动日志，但是不是完整的json格式，脏数据，过滤掉
            return false;
        }

        return true;    //数据不为空，包含start，且是完整的json格式时，是启动日志，返回true
    }

    public static boolean checkEvent(String log){
        if (log == null){   //数据为空时，过滤掉
            return false;
        }

        //不为空时
        String[] split = log.split("[|]");
        //判断长度：事件日志长度=2
        if (split.length != 2){ //不是启动日志，且不满足事件日志的条件，过滤掉
            return false;
        }

        //判断服务器时间:split[0]长度不是13或者该字符串不是数字格式的，不是正确的时间戳格式，该条日志不是正确的日志格式，是脏数据，过滤掉
        if (split[0].length() != 13 || !NumberUtils.isDigits(split[0])){
            return false;
        }

        //判断split[1]是不是完整的json格式，如果不是，则该条数据是脏数据，过滤掉
        if (!log.trim().startsWith("{") || !log.trim().endsWith("}")){  //不包含start，不是启动日志，但是不是完整的json格式，脏数据，过滤掉
            return false;
        }

        return true;

    }
}
